package com.zzh.partnersys.im.feign;

import com.zzh.partnersys.im.entity.request.SaveMessageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * IM服务Feign客户端（用于内部回调）
 * 用于在流式响应完成后，通过远程调用完成消息入库
 *
 * @author zzh
 */
@FeignClient(name = "partner-im", path = "/im")
public interface ImServiceFeignClient {

    /**
     * 保存完整消息（内部回调）
     *
     * @param request 消息入库请求
     * @return 是否成功
     */
    @PostMapping("/chat/save-complete-message")
    Boolean saveCompleteMessage(@RequestBody SaveMessageRequest request);

    /**
     * 保存不完整消息（内部回调）
     *
     * @param request 消息入库请求
     * @return 是否成功
     */
    @PostMapping("/chat/save-incomplete-message")
    Boolean saveIncompleteMessage(@RequestBody SaveMessageRequest request);
}

